<?php

function create_image() {
    $obj = & get_instance();
    $obj->load->library('session');
    //Let's generate a totally random string using md5 
    $md5_hash = md5(rand(0, 999));
    //We don't need a 32 character long string so we trim it down to 5
    $security_code = substr($md5_hash, 15, 5);

    //Set the session to store the security code
    $_SESSION["security_code"] = $security_code;
    $obj->session->set_userdata('security_code', $security_code);

    //Set the image width and height 
    $width = 100;
    $height = 20;

    //Create the image resource
    $image = ImageCreate($width, $height);

    //We are making three colors, white, black and gray
    $white = ImageColorAllocate($image, 255, 255, 255);
    $black = ImageColorAllocate($image, 0, 0, 0);
    $grey = ImageColorAllocate($image, 204, 204, 204);
    $color = imagecolorallocate($image, 200, 100, 90); //red
    //Make the background black
    ImageFill($image, 0, 0, $black);

    //Add randomly generated string in white to the image
    ImageString($image, 4, 30, 3, $security_code, $color);

    //Throw in some lines to make it a little bit harder for any bots to break
    ImageRectangle($image, 0, 0, $width - 1, $height - 1, $grey);
    //imageline($image, 0, $height/2, $width, $height/2, $grey);
    //imageline($image, $width/2, 0, $width/2, $height, $grey);
    //Tell the browser what kind of file is come in
    header("Content-Type: image/jpeg");

    //Output the newly created image in jpeg format
    ImageJpeg($image);

    //Free up resources
    ImageDestroy($image);
}

function create_img($font) {
    $obj = & get_instance();
    $obj->load->library('session');
    $string = '';
    for ($i = 0; $i < 2; $i++) {
        $string.=chr(rand(97, 122));
    }
    $md5_hash = md5(rand(0, 999));
    $string .= substr($md5_hash, 15, 3);
    $obj->session->set_userdata('security_code', $string);
    $image = imagecreatetruecolor(140, 60);
    $black = imagecolorallocate($image, 0, 0, 0);
    $color = imagecolorallocate($image, 200, 100, 90); // red
    $white = imagecolorallocate($image, 255, 255, 255);
    $bg = imagecolorallocate($image, 10, 200, 50);

    imagefilledrectangle($image, 0, 0, 200, 100, $bg);
    imagettftext($image, 30, 0, 30, 40, $color, $font, $obj->session->userdata('security_code'));

    header("Content-type: image/png");
    imagepng($image);
    imagedestroy($image);
}

?>